#coding:utf-8
import random
'''
随机生成4个有顺序且不重复的数(0-9)，让用户猜，
提示用户有几个数字位置和数值都对了，
有几个只有数字对了，位置不对
例如：随机生成  1357，用户猜1234，
输出1个数字值正确、1个数字值和位置都正确
直到猜对结束游戏
'''
#创建一个列表，放入四个0-9之间的数
list = [] #用来存放自动生成的四个数
while len(list)!=4:
    a = random.randint(0,9)
    if a not in list:
        list.append(a)
print(list)
while True:
    num = input('请输入你猜的数:') #num是字符串
    uList = [] #用来存放用户猜的四个数的列表
    for i in range(4):
        uList.append(int(num[i]))
    #print(uList)
    #算出数值对的有几个(不管位置)
    countAll = 0 #数值对的数量
    for i in list:
        if i in uList:
            countAll+=1
    #算出数值和位置都对的
    count = 0 #数值和位置都对的数量
    for i in range(len(list)):
        if list[i]==uList[i]:
            count+=1
    if count==4:
        print('真不错，猜对了！')
        break
    print('数值和位置都正确的有:',count,'个')
    print('仅数值正确的有',countAll-count,'个')